package com.learn.datatype.learnnum;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
 * 功能：数字格式化
 *
 * @author wsh
 * @date 2020/9/16
 */
public class NumFormat {
    /**
     * 功能：格式化数字（带四舍五入功能）
     *
     * @param d
     * @return 返回带 2 位小数的 Double
     * @author wsh
     * @date 2020/9/16
     */
    public static Double formatNum1(Double d) {
        BigDecimal bg = BigDecimal.valueOf(d);
        return bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 功能：格式化数字
     *
     * @param d
     * @return 返回带 2 位小数的 String
     * @author wsh
     * @date 2020/9/16
     */
    public static String formatNum2(Double d) {
        DecimalFormat df = new DecimalFormat("#.##");
        return df.format(d);
    }

    /**
     * 功能：格式化数字
     *
     * @param d
     * @return 返回带 2 位小数的 String
     * @author wsh
     * @date 2020/9/16
     */
    public static String formatNum3(Double d) {
        return String.format("%.2f", d);
    }

    /**
     * 功能：格式化数字
     *
     * @param d
     * @return 返回带 2 位小数的 String
     * @author wsh
     * @date 2020/9/16
     */
    public static String formatNum4(Double d) {
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(2);
        return nf.format(d);
    }

    public static void main(String[] args) {
        Double d = 0.12345;
        System.out.println(formatNum1(d));
        System.out.println(formatNum2(d));
        System.out.println(formatNum3(d));
        System.out.println(formatNum4(d));
    }
}
